package pro.cherish.knowledgeumldesignpattern.designPattern.com.cherish.observer;
//观察者模式场景(本质就是群发消息)
//服务器转发给客户端
//网络游戏，服务器分发给客户端数据
//邮件订阅
//servlet中监听器实现
//android 广播机制
// jdk中AWT中的事件处理基于观察者模式的委派事件模型  事件源(目标对象)   事件监听器(观察者)
//京东 ,群发商品打折信息
public class Client {
    public static void main(String [] args){
        //目标对象
        ConcreteSubject concreteSubject = new ConcreteSubject();
//        创建多个观察者
        ObserverA o1 = new ObserverA();
        ObserverA o2 = new ObserverA();
        ObserverA o3 =new ObserverA();
//        将三个观察者添加到subject对象的观察者队伍中
        concreteSubject.register(o1);
        concreteSubject.register(o2);
        concreteSubject.register(o2);
//改变subject状态
        concreteSubject.setState(1000);
//看看观察者的状态是不是也发生了改变
        System.out.println(o1.getMyState());
        System.out.println(o2.getMyState());
        System.out.println(o2.getMyState());
        //改变subject状态
        concreteSubject.setState(1);
//看看观察者的状态是不是也发生了改变
        System.out.println(o1.getMyState());
        System.out.println(o2.getMyState());
        System.out.println(o2.getMyState());
    }
}
